package cn.biplam.back.sql.ddl;

import cn.biplam.common.wrapper.ErrorMessage;

/**
 * SQL DDL 语义模型
 * @author 	WangSong
 * @version 1.0
 */
public interface Structure {

	/**
	 * 返回DDL结构逻辑名称
	 * @return	DDL结构逻辑名称
	 */
	public abstract String getLogicName();

	/**
	 * 返回DDL结构物理名称
	 * @return	DDL结构物理名称
	 */
	public abstract String getPhysicalName();

	/**
	 * 按默认序号插入一个DDL结构
	 * @param mStructure	DDL结构
	 * @throws ErrorMessage
	 */
	public abstract void put(Structure mStructure) throws ErrorMessage;

	/**
	 * 设置DDL结构的逻辑名称
	 * @param logicName		逻辑名称(非空,符合命名规范)
	 */
	public abstract void setLogicName(String logicName);

	/**
	 * 设置DDL结构的名称(物理、逻辑)
	 * @param physicalName	物理名称(非空,符合命名规范)
	 * @param logicName		逻辑名称(为空则同物理名称)
	 */
	public abstract void setName(String physicalName, String logicName);

	/**
	 * 设置DDL结构的物理名称
	 * @param physicalName	物理名称(非空,符合命名规范)
	 */
	public abstract void setPhysicalName(String physicalName);

	/**
	 * 返回DDL结构说明
	 * @return DDL结构说明
	 */
	public abstract String getComment();

	/**
	 * 设置DDL结构说明
	 * @param comment DDL结构说明
	 */
	public abstract void setComment(String comment);

}